package org.example.demo3.demos.web.entity.vmsfulloutinvoice;


import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 数电发票信息表
 * </p>
 *
 * @author chenxudong
 * @since 2023-11-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("VMS_FULL_OUTINVOICEDETAILS")
@KeySequence(value = "SEQ_VMS_FULL_OUTINVOICEDETAILS")
public class VmsFullOutInvoiceDetails implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 发票主键
     */
    @TableId(value = "FOIDID", type = IdType.INPUT)
    private Long foidid;

    /**
     * 发票号码
     */
    private String fphm;

    /**
     * 蓝字发票标志; 0：蓝字发票 1：红字发票
     */
    private String lzfpbz;

    /**
     * 平台编号; 直连单位ID
     */
    private String ptbh;

    /**
     * 发票票种;01：数电专 02：数电普
     */
    private String fppz;

    /**
     * 单号类型;01：投保单号；02：汇交单号；03学平险受单号
     */
    private String dhlx;

    /**
     * 投保单号/汇交单号/学平险受单号
     * 01：投保单号；02：汇交单号；03学平险受单号
     */
    private String dh;

    /**
     * 特定要素;空：非特定要素 01：成品油发票 02：稀土发票 03：建筑服务发票 04：货物运输服务发票 05：不动产销售服务发票 06：不动产租赁服务发票
     * 07：代收车船税 08：通行费 09：旅客运输服务发票 10：医疗服务（住院）发票 11：医疗服务（门诊）发票 12：自产农产品销售发票
     * 13 拖拉机和联合收割机发票 14：机动车 15：二手车 16：农产品收购发票 17：光伏收购发票 18：卷烟发票
     */
    private String tdys;

    /**
     * 差额征税类型代码;空：非差额发票 01：全额开票 02：差额开票
     */
    private String cezslxdm;

    /**
     * 购买方名称
     */
    private String gmfmc;

    /**
     * 购买方纳税人识别号
     */
    private String gmfnsrsbh;

    /**
     * 销售方名称
     */
    private String xsfmc; // 111

    /**
     * 销售方纳税人识别号
     */
    private String xsfnsrsbh;

    /**
     * 合计金额
     */
    private BigDecimal hjje;

    /**
     * 合计税额
     */
    private BigDecimal hjse;

    /**
     * 价税合计
     */
    private BigDecimal jshj;

    /**
     * 开票人
     */
    private String kpr;

    /**
     * 对应蓝字发票号码
     */
    private String dylzfphm;

    /**
     * 红字确认信息单编号;是否蓝字发票标志为1时，此节点有内容	红票开具时必传
     */
    private String hzqrxxdbh;

    /**
     * 红字确认单uuid;是否蓝字发票标志为1时，此节点有内容红票开具时必传
     */
    private String hzqrduuid;

    /**
     * 备注
     */
    private String bz;

    /**
     * 开票日期;格式：	yyyy-MM-dd HH:mm:ss
     */
    private Date kprq;

    /**
     * 发票上传状态;0：未上传 1：上传中 2：已上传 3：上传失败
     */
    private String sczt;

    /**
     * 受理流水号;乐企数电票上传返回的受理流水号
     */
    private String sllsh;

    /**
     * 上传结果;上传成功；上传失败：对应乐企接口上传失败返回的数据，进行回写
     */
    private String scjg;

    /**
     * 发票状态;0：正常，2：作废，3：已红冲，7：部分红冲，8：全额红冲
     */
    private String fpzt;

    /**
     * 交易机构
     */
    private String qydjid;

    /**
     * 作废红冲日期
     */
    private Date zfchrq;

    /**
     * 作废红冲原因
     */
    private String zfchyy;

    /**
     * 数据来源;0：交易数据开票 1：手工申请 2：官网开票
     */
    private String sjly;

    /**
     * 匹配状态;0：未完全匹配，1：已完全匹配，-1：无需匹配，且只针对手工开票数据
     */
    private String ppzt;

    /**
     * 是否不动产;0：不是，1：是，默认0
     */
    private String sfbdc;

    /**
     * 征税方式;0：普通征税，2：差额征税
     */
    private String zsfs;

    /**
     * 开票状态;0：未开票 2：开票成功 3：开票失败
     */
    private String kpzt;

    /**
     * 删除状态;0-正常，1-删除
     */
    private String delFlag;

    /**
     * 手工开票临时表主表ID
     */
    private Long baseId;

    /**
     * VMS发票表主键，用于关联老发票表
     */
    private Long oidid;

    /**
     * 创建时间
     */
    private Date creatTime;

    /**
     * 创建人
     */
    private String creatBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 更新人
     */
    private String updateBy;

    /**
     * 金额模式 01：不含税 02：含税
     */
    @TableField(exist = false) // 非数据库属性,是自己添加的. 就添加 exist 不存在
    private String jems;

    /**
     * 数据库来源：1 进项票、2 税控票、3 数电票
     */
    @TableField(exist = false)
    private String sjkly;

}
